YES(O(1),O(n^1)) We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict Trs: { rev(ls) -> r1(ls, empty()) , r1(empty(), a) -> a , r1(cons(x, k), a) -> r1(k, cons(x, a)) } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We use the processor 'Small Polynomial Path Order (PS,1-bounded)' to orient following rules strictly. Trs: { rev(ls) -> r1(ls, empty()) , r1(empty(), a) -> a , r1(cons(x, k), a) -> r1(k, cons(x, a)) } The induced complexity on above rules (modulo remaining rules) is YES(?,O(n^1)) . These rules are moved into the corresponding weak component(s). Sub-proof: ---------- The input was oriented with the instance of 'Small Polynomial Path Order (PS,1-bounded)' as induced by the safe mapping safe(rev) = {}, safe(r1) = {2}, safe(empty) = {}, safe(cons) = {1, 2} and precedence rev > r1 . Following symbols are considered recursive: {r1} The recursion depth is 1. For your convenience, here are the satisfied ordering constraints: rev(ls;) > r1(ls; empty()) r1(empty(); a) > a r1(cons(; x, k); a) > r1(k; cons(; x, a)) We return to the main proof. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Weak Trs: { rev(ls) -> r1(ls, empty()) , r1(empty(), a) -> a , r1(cons(x, k), a) -> r1(k, cons(x, a)) } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) Empty rules are trivially bounded Hurray, we answered YES(O(1),O(n^1))